﻿using System.Collections.Generic;
using Mongoose.Windows.Controls;

namespace Mongoose.Windows
{
    /// <summary>
    /// Base interface to implement layouting behavior for pads
    /// </summary>
    public interface IPadContainerLayout
    {
        /// <summary>
        /// Gets the pad container.
        /// </summary>
        /// <value>
        /// The pad container.
        /// </value>
        IPadContainer Container { get; }

        /// <summary>
        /// Gets a value indicating whether the pads should always be layouted or only when added to the surface.
        /// </summary>
        /// <value>
        /// <c>true</c> if this instance is dynamic; otherwise, <c>false</c>.
        /// </value>
        bool IsDynamic { get; }

        /// <summary>
        /// Arranges the pads. Will be called whenever the pads collection on the surface changes.
        /// </summary>
        /// <param name="pads">The pads.</param>
        void ArrangePads(IEnumerable<Pad> pads);
    }
}
